ip地址与整数相互转换 您所在的位置:网站首页 python ip转换整数 ip地址与整数相互转换

ip地址与整数相互转换

2023-07-20 14:16| 来源: 网络整理| 查看: 265

1、ip地址转成整数

原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成整数。

举例:一个ip地址为10.0.3.193 每段数字             相对应的二进制数 10                   00001010 0                    00000000 3                    00000011 193                  11000001 组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。

用乘法表示:167773121=10*(256*256*256)+0*(256*256)+3*256+193,其中256=2**8。

我用到了位移操作,因为它就是操作的二进制数,使用位移操作很方面、直观。按位操作符操作的是整数的二进制数。

#将字符串形式的ip地址转成整数类型。 def ipToLong(ip_str): #print map(int,ip_str.split('.')) ip_long = 0 for index,value in enumerate(reversed([int(x) for x in ip_str.split('.')])): ip_long += value24 i_2 = (ip_long & 0X00FFFFFF)>>16 i_3 = (ip_long & 0X0000FFFF)>>8 i_4 = (ip_long & 0X000000FF) ip_list.append(i_1) ip_list.append(i_2) ip_list.append(i_3) ip_list.append(i_4) ip_str = r'.'.join(map(str,ip_list)) return ip_str 详细的原理见http://aokunsang.iteye.com/blog/622498



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有